{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5.1　绘制固定区域的子图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.1.1　绘制单子图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt5Agg\n"
     ]
    }
   ],
   "source": [
    "# 通过窗口的形式显示图片, 很好地体现子图与整个画布的位置关系\n",
    "%matplotlib auto\n",
    "import matplotlib.pyplot as plt\n",
    "# 画布被规划为3×2 的矩阵区域 , 之后在索引为6 的区域中绘制子图\n",
    "ax_one = plt.subplot(326) \n",
    "ax_one.plot([1, 2, 3, 4, 5]) \n",
    "# 画布被规划为3×1 的矩阵区域 , 之后在索引为2 的区域中绘制子图　　　\n",
    "ax_two = plt.subplot(312) \n",
    "ax_two.plot([1, 2, 3, 4, 5])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.1.2　实例1：某工厂产品A与产品B去年的销售额分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt5Agg\n"
     ]
    }
   ],
   "source": [
    "# 01_product_sales\n",
    "%matplotlib auto\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['font.sans-serif'] = [\"SimHei\"]\n",
    "x = [x for x in range(1, 13)]\n",
    "y1 = [20, 28, 23, 16, 29, 36, 39, 33, 31, 19, 21, 25]\n",
    "y2 = [17, 22, 39, 26, 35, 23, 25, 27, 29, 38, 28, 20]\n",
    "labels = ['1 月', '2 月', '3 月', '4 月', '5 月', '6 月', '7月', '8 月', '9 月', '10 月', '11 月', '12 月']\n",
    "# 将画布规划成等分布局的2×1的矩阵区域 , 之后在索引为1的区域中绘制子图\n",
    "ax1 = plt.subplot(211)\n",
    "ax1.plot(x, y1, 'm--o', lw=2, ms=5, label='产品A')\n",
    "ax1.plot(x, y2, 'g--o', lw=2, ms=5, label='产品B')\n",
    "ax1.set_title(\"产品A 与产品B的销售额\", fontsize=11)\n",
    "ax1.set_ylim(10, 45)\n",
    "ax1.set_ylabel('销售额(亿元)')\n",
    "ax1.set_xlabel('月份')\n",
    "for xy1 in zip(x, y1):\n",
    "    ax1.annotate(\"%s\" % xy1[1], xy=xy1, xytext=(-5, 5), textcoords='offset points')\n",
    "for xy2 in zip(x, y2):\n",
    "    ax1.annotate(\"%s\" % xy2[1], xy=xy2, xytext=(-5, 5), textcoords='offset points')\n",
    "ax1.legend()\n",
    "# 将画布规划成等分布局的2×2的矩阵区域 , 之后在索引为3的区域中绘制子图\n",
    "ax2 = plt.subplot(223)\n",
    "ax2.pie(y1, radius=1, wedgeprops={'width':0.5}, labels=labels, autopct='%3.1f%%', pctdistance=0.75)\n",
    "ax2.set_title('产品A的销售额 ')\n",
    "# 将画布规划成等分布局的2×2的矩阵区域 , 之后在索引为4的区域中绘制子图\n",
    "ax3 = plt.subplot(224)\n",
    "ax3.pie(y2, radius=1, wedgeprops={'width':0.5}, labels=labels,autopct='%3.1f%%', pctdistance=0.75)\n",
    "ax3.set_title('产品B的销售额 ')\n",
    "# 调整子图之间的距离\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.1.3　绘制多子图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt5Agg\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x6dc5fd0>]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%matplotlib auto\n",
    "import matplotlib.pyplot as plt\n",
    "# 将画布划分为2×2的等分区域\n",
    "fig, ax_arr = plt.subplots(2, 2)\n",
    "# 获取 ax_arr 数组第1行第0列的元素 , 也就是第3个区域\n",
    "ax_thr = ax_arr[1, 0]\n",
    "ax_thr.plot([1, 2, 3, 4, 5])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.1.4　实例2：部分国家养猫与养狗人群比例分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt5Agg\n"
     ]
    }
   ],
   "source": [
    "# 02_people_with_dogs_and_cats\n",
    "%matplotlib auto\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['font.sans-serif'] = [\"SimHei\"]\n",
    "# 添加无指向型注释文本\n",
    "def autolabel(ax, rects):\n",
    "    \"\"\" 在每个矩形条的上方附加一个文本标签, 以显示其高度\"\"\"\n",
    "    for rect in rects:\n",
    "        width = rect.get_width()    #  获取每个矩形条的高度\n",
    "        ax.text(width  + 3, rect.get_y() , s='{}'.format(width), ha='center', va='bottom')\n",
    "y = np.arange(12)\n",
    "x1 = np.array([19, 33, 28, 29, 14, 24, 57, 6, 26, 15, 27, 39])\n",
    "x2 = np.array([25, 33, 58, 39, 15, 64, 29, 23, 22, 11, 27, 50])\n",
    "labels = np.array(['中国', '加拿大', '巴西', '澳大利亚', '日本', '墨西哥', \n",
    "                   '俄罗斯', '韩国', '瑞士', '土耳其', '英国', '美国'])\n",
    "# 将画布规划为1×2的矩阵区域 , 依次在每个区域中绘制子图\n",
    "fig, (ax1, ax2) = plt.subplots(1, 2)\n",
    "barh1_rects = ax1.barh(y, x1, height=0.5, tick_label=labels, color='#FFA500')\n",
    "ax1.set_xlabel('人群比例(%)')\n",
    "ax1.set_title('部分国家养猫人群的比例')\n",
    "ax1.set_xlim(0, x1.max() + 10)\n",
    "autolabel(ax1, barh1_rects)\n",
    "barh2_rects = ax2.barh(y, x2, height=0.5, tick_label=labels, color='#20B2AA')\n",
    "ax2.set_xlabel('人群比例(%)')\n",
    "ax2.set_title('部分国家养狗人群的比例')\n",
    "ax2.set_xlim(0, x2.max() + 10)\n",
    "autolabel(ax2, barh2_rects)\n",
    "# 调整子图之间的距离\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5.2　绘制自定义区域的子图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.2.1　绘制单子图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt5Agg\n"
     ]
    }
   ],
   "source": [
    "%matplotlib auto\n",
    "import matplotlib.pyplot as plt\n",
    "# 画布被规划成2×3的矩阵区域 , 之后在第0行第2列的区域中绘制子图　　　\n",
    "ax1 = plt.subplot2grid((2, 3), (0, 2))\n",
    "ax1.plot([1, 2, 3, 4, 5])\n",
    "# 画布被规划成2×3的矩阵区域 , 之后在第1行第1～2列的区域中绘制子图　　　\n",
    "ax2 = plt.subplot2grid((2, 3), (1, 1), colspan=2)\n",
    "ax2.plot([1, 2, 3, 4, 5])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.2.2　实例3：2017年与2018年抖音用户分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt5Agg\n"
     ]
    }
   ],
   "source": [
    "%matplotlib auto\n",
    "# 03_2017_and_2018_user_analysis_of_douyin\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n",
    "data_2017 = np.array([21, 35, 22, 19, 3])\n",
    "data_2018 = np.array([13, 32, 27, 27, 1])\n",
    "x = np.arange(5)\n",
    "y = np.array([51, 73, 99, 132, 45])\n",
    "labels = np.array(['一线城市', '二线城市', '三线城市', '四线及以外', '其他国家及地区'])\n",
    "# 平均增长倍数\n",
    "average = 75\n",
    "bar_width = 0.5\n",
    "# 添加无指向型注释文本\n",
    "def autolabel(ax, rects):\n",
    "    \"\"\" 在每个矩形条的上方附加一个文本标签, 以显示其高度\"\"\"\n",
    "    for rect in rects:\n",
    "        height = rect.get_height()     #  获取每个矩形条的高度\n",
    "        ax.text(rect.get_x()  + bar_width/2, height + 3, s='{}'.format(height), ha='center', va='bottom')\n",
    "# 第1个子图\n",
    "ax_one = plt.subplot2grid((3,2), (0,0), rowspan=2, colspan=2)\n",
    "bar_rects = ax_one.bar(x, y, tick_label=labels, color='#20B2AA', width=bar_width)\n",
    "ax_one.set_title('抖音2018vs2017人群增长倍数')\n",
    "ax_one.set_ylabel('增长倍数')\n",
    "autolabel(ax_one, bar_rects)\n",
    "ax_one.set_ylim(0, y.max() + 20)\n",
    "ax_one.axhline(y=75, linestyle='--', linewidth=1, color='gray')\n",
    "# 第2个子图\n",
    "ax_two = plt.subplot2grid((3,2), (2,0))\n",
    "ax_two.pie(data_2017, radius=1.5, labels=labels, autopct='%3.1f %%', \n",
    "           colors=['#2F4F4F', '#FF0000', '#A9A9A9', '#FFD700', '#B0C4DE'])\n",
    "ax_two.set_title('2017年抖音用户地区分布的比例')\n",
    "# 第3个子图\n",
    "ax_thr = plt.subplot2grid((3,2), (2,1))\n",
    "ax_thr.pie(data_2018, radius=1.5, labels=labels, autopct='%3.1f %%', \n",
    "           colors=['#2F4F4F', '#FF0000', '#A9A9A9', '#FFD700', '#B0C4DE' ])\n",
    "ax_thr.set_title('2018年抖音用户地区分布的比例')\n",
    "# 调整子图之间的距离\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5.3　共享子图的坐标轴"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.3.1　共享相邻子图的坐标轴"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt5Agg\n"
     ]
    }
   ],
   "source": [
    "%matplotlib auto\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "x1 = np.linspace(0, 2 *np.pi, 400)\n",
    "x2 = np.linspace(0.01, 10, 100)\n",
    "x3 = np.random.rand(10)\n",
    "x4 = np.arange(0,6,0.5)\n",
    "y1 = np.cos(x1 ** 2)\n",
    "y2 = np.sin(x2)\n",
    "y3 = np.linspace(0,3,10)\n",
    "y4 = np.power(x4,3)\n",
    "# 共享每一列子图之间的x 轴\n",
    "fig, ax_arr = plt.subplots(2, 2, sharex='col')\n",
    "ax1 = ax_arr[0, 0]\n",
    "ax1.plot(x1, y1)\n",
    "ax2 = ax_arr[0, 1]\n",
    "ax2.plot(x2, y2)\n",
    "ax3 = ax_arr[1, 0]\n",
    "ax3.scatter(x3, y3)\n",
    "ax4 = ax_arr[1, 1]\n",
    "ax4.scatter(x4, y4)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.3.2　共享非相邻子图的坐标轴"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt5Agg\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0xf41a0a0>]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%matplotlib auto\n",
    "x1 = np.linspace(0, 2 *np.pi, 400)\n",
    "y1 = np.cos(x1 ** 2)\n",
    "x2 = np.linspace(0.01, 10, 100)\n",
    "y2 = np.sin(x2)\n",
    "ax_one = plt.subplot(221)\n",
    "ax_one.plot(x1, y1)\n",
    "# 共享子图 ax_one 和ax_two 的x 轴\n",
    "ax_two = plt.subplot(224, sharex=ax_one)\n",
    "ax_two.plot(x2, y2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.3.3　实例4：某地区全年平均气温与降水量、蒸发量的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 04_temperature_precipitation_evaporation\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n",
    "plt.rcParams[\"axes.unicode_minus\"] = False\n",
    "month_x = np.arange(1, 13, 1)\n",
    "# 平均气温\n",
    "data_tem = np.array([2.0, 2.2, 3.3, 4.5, 6.3, 10.2, \n",
    "                     20.3, 33.4, 23.0, 16.5, 12.0, 6.2])\n",
    "# 降水量\n",
    "data_precipitation = np.array([2.6, 5.9, 9.0, 26.4, 28.7, 70.7,  \n",
    "                               175.6, 182.2, 48.7, 18.8, 6.0, 2.3])\n",
    "# 蒸发量\n",
    "data_evaporation = np.array([2.0, 4.9, 7.0, 23.2, 25.6, 76.7, \n",
    "                             135.6, 162.2, 32.6, 20.0, 6.4, 3.3])\n",
    "fig, ax = plt.subplots()\n",
    "bar_ev = ax.bar(month_x, data_evaporation, color='orange', tick_label=['1月', '2月', '3月', '4月', '5月', '6月',\n",
    "                                                                       '7月', '8月', '9月', '10月', '11月', '12月'])\n",
    "bar_pre = ax.bar(month_x, data_precipitation, bottom=data_evaporation, color='green')\n",
    "ax.set_ylabel('水量 (ml)')\n",
    "ax.set_title('平均气温与降水量、蒸发量的关系')\n",
    "ax_right = ax.twinx()\n",
    "line = ax_right.plot(month_x, data_tem, 'o-m')\n",
    "ax_right.set_ylabel('气温($^\\circ$C)')\n",
    "# 添加图例\n",
    "plt.legend([bar_ev, bar_pre, line[0]], ['蒸发量', '降水量', '平均气温'],\n",
    "           shadow=True, fancybox=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5.4　子图的布局"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.4.1　约束布局"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "# 绘制子图并启用约束布局\n",
    "fig, axs = plt.subplots(2, 2, constrained_layout=True)\n",
    "ax_one = axs[0, 0]\n",
    "ax_one.set_title('Title')\n",
    "ax_two = axs[0, 1]\n",
    "ax_two.set_title('Title')\n",
    "ax_thr = axs[1, 0]\n",
    "ax_thr.set_title('Title')\n",
    "ax_fou = axs[1, 1]\n",
    "ax_fou.set_title('Title')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.4.2　紧密布局"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "fig, axs = plt.subplots(2, 2)\n",
    "ax_one = axs[0, 0]\n",
    "ax_one.set_title('Title')\n",
    "ax_two = axs[0, 1]\n",
    "ax_two.set_title('Title')\n",
    "ax_thr = axs[1, 0]\n",
    "ax_thr.set_title('Title')\n",
    "ax_fou = axs[1, 1]\n",
    "ax_fou.set_title('Title')\n",
    "# 调整子图之间的距离\n",
    "plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.4.3　自定义布局"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.gridspec as gridspec\n",
    "fig2 = plt.figure()\n",
    "spec2 = gridspec.GridSpec(ncols=2, nrows=2, figure=fig2)\n",
    "f2_ax1 = fig2.add_subplot(spec2[0, 0])\n",
    "f2_ax2 = fig2.add_subplot(spec2[0, 1])\n",
    "f2_ax3 = fig2.add_subplot(spec2[1, 0])\n",
    "f2_ax4 = fig2.add_subplot(spec2[1, 1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'gs[-1, -2]')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 5 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig3 = plt.figure()\n",
    "gs = fig3.add_gridspec(3, 3)\n",
    "f3_ax1 = fig3.add_subplot(gs[0, :])\n",
    "f3_ax1.set_title('gs[0, :]')\n",
    "f3_ax2 = fig3.add_subplot(gs[1, :-1])\n",
    "f3_ax2.set_title('gs[1, :-1]')\n",
    "f3_ax3 = fig3.add_subplot(gs[1:, -1])\n",
    "f3_ax3.set_title('gs[1:, -1]')\n",
    "f3_ax4 = fig3.add_subplot(gs[-1, 0])\n",
    "f3_ax4.set_title('gs[-1, 0]')\n",
    "f3_ax5 = fig3.add_subplot(gs[-1, -2])\n",
    "f3_ax5.set_title('gs[-1, -2]')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.4.4　实例5：2018年上半年某品牌汽车销售情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 05_cars_sales\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.gridspec as gridspec\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n",
    "x_month = np.array(['1月', '2月', '3月', '4月', '5月', '6月'])\n",
    "y_sales = np.array([2150, 1050, 1560, 1480, 1530, 1490])\n",
    "x_citys = np.array(['北京', '上海', '广州', '深圳', '浙江', '山东'])\n",
    "y_sale_count = np.array([83775, 62860, 59176, 64205, 48671, 39968])\n",
    "# 创建画布和布局\n",
    "fig = plt.figure(constrained_layout=True)\n",
    "gs = fig.add_gridspec(2, 2)\n",
    "ax_one = fig.add_subplot(gs[0, :])\n",
    "ax_two = fig.add_subplot(gs[1, 0])\n",
    "ax_thr = fig.add_subplot(gs[1, 1])\n",
    "# 第1个子图\n",
    "ax_one.bar(x_month, y_sales, width=0.5, color='#3299CC')\n",
    "ax_one.set_title('2018年上半年某品牌汽车的销售额')\n",
    "ax_one.set_ylabel('销售额(亿元)')\n",
    "# 第2个子图\n",
    "ax_two.plot(x_citys, y_sale_count, 'm--o', ms=8)\n",
    "ax_two.set_title('分公司某品牌汽车的销量')\n",
    "ax_two.set_ylabel('销量(辆)')\n",
    "# 第3个子图\n",
    "ax_thr.stackplot(x_citys, y_sale_count, color='#9999FF')\n",
    "ax_thr.set_title('分公司某品牌汽车的销量')\n",
    "ax_thr.set_ylabel('销量(辆)')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
